#!/bin/bash

# funções
ajuda() {
echo -e "Como usar: script.sh [opções]\n \
\t-p pasta (ex: $HOME/Imagens)\n \
\t-n nome dos arquivos (ex: fotos)\n \
\t-i início da numeração (ex: 10)\n \
\t-h exibe a mensagem de ajuda"
}

simular() {
n=$NUM
for ARQ in `ls -v -1 *.{jpg,JPG,png,PNG,jpeg,JPEG,gif,mp4,webm} 2> /dev/null` ; do
    EXT=`echo "$ARQ" | awk -F"." '{print $2}'`
    NEW="$NOME$(printf "%02d" $n).$EXT"
    echo "SIMULAÇÃO: $ARQ => $NEW"
    let n++
done
}

renomear() {
n=$NUM
for ARQ in `ls -v -1 *.{jpg,JPG,png,PNG,jpeg,JPEG,gif,mp4,webm} 2> /dev/null` ; do
    EXT=`echo "$ARQ" | awk -F"." '{print $2}'`
    NEW="$NOME$(printf "%02d" $n).$EXT"
    mv -i -v "$ARQ" "$NEW"
    let n++
done
}

# Atribuição dos valores das variáveis
if [ -z "$1" ] ; then
    echo "Entrando no modo interativo..."
    read -p "Diretório (ex: $HOME/Imagens): " PASTA
    read -p "Nome (ex: fotos): " NOME
    read -p "Início (ex: 1): " NUM
fi

while [ -n "$1" ]
do
    case "$1" in
        -p )         shift ; PASTA=$1 ;;
        -n )         shift ; NOME=$1 ;;
        -i )         shift ; NUM=$1 ;;
        -h|--help )  ajuda ; exit ;;
        * )          echo "Opção inválida!" ; ajuda ; exit ;;
    esac
    shift
done

# Verificação dos parâmetros ??
if [ ! -d "$PASTA" ] ; then
    echo "A pasta não foi encontrada."
    echo "Saindo sem fazer nada!"
    exit
else
    cd $PASTA
fi

# Operação
simular | tee .simula.tmp
simulateste=`cat .simula.tmp`
if [ -n "$simulateste" ] ; then
    echo -n "Deseja confirmar a operação? (S/n): "; read RESP
    if [ $RESP = S ] || [ $RESP = s ] ; then
        renomear
        rm .simula.tmp
    else
        echo "Saindo sem fazer nada!"
        rm .simula.tmp
        exit
    fi
else
    echo "Não foram encontrados arquivos .png/.jpg"
    rm .simula.tmp
    exit
fi

